home *** CD-ROM | disk | FTP | other *** search
- /*
- WDEF_Tester.c
-
- Code to test WDEF's.
-
- by Patrick Beard.
- */
-
- #include <EventMgr.h>
- #include <DialogMgr.h>
- #include <TextEdit.h>
-
- #ifndef nil
- #define nil 0L
- #endif
-
- main()
- {
- Boolean quit = false;
- WindowPtr w;
- long i;
- Str255 name;
-
- init();
-
- for(i = 1; i < 5; i++) {
- w = GetNewWindow(128, nil, -1L);
- NumToString(i, name);
- SetWTitle(w, name);
- }
-
- while(!quit) {
- EventRecord evt;
- SystemTask();
- if(GetNextEvent(everyEvent, &evt)) {
- GrafPtr oldPort;
- GetPort(&oldPort);
-
- switch(evt.what) {
- case updateEvt:
- {
- WindowPtr w = (WindowPtr)evt.message;
- SetPort(w);
- BeginUpdate(w);
- EraseRect(&w->portRect);
- GetWTitle(w, name);
- MoveTo(10, 20);
- DrawString("\pWindow # "); DrawString(name);
- EndUpdate(w);
- } break;
- case mouseDown:
- {
- WindowPtr w = 0;
- short where;
- Point sizePt;
- where = FindWindow(evt.where, &w);
- if(w) {
- if(!(evt.modifiers & cmdKey) && w != FrontWindow())
- SelectWindow(w);
- switch(where) {
- case inDrag:
- DragWindow(w, evt.where, &screenBits.bounds);
- break;
- case inGrow: {
- Rect bBox = { 50, 50, 32767, 32767 };
- if(*(long*)&sizePt = GrowWindow(w, evt.where, &bBox))
- SizeWindow(w, sizePt.h, sizePt.v, true);
- }
- break;
- case inZoomIn:
- case inZoomOut:
- SetPort(w);
- EraseRect(&w->portRect);
- ZoomWindow(w, where, true);
- break;
- case inGoAway:
- if(TrackGoAway(w, where))
- HideWindow(w);
- break;
- }
- }
- } break;
- case keyDown:
- quit = true;
- break;
- }
- SetPort(oldPort);
- }
- }
- }
-
- init()
- {
- EventRecord event;
-
- /* Standard Initialization Sequence */
- InitGraf(&thePort); /* set up quickdraw */
- InitFonts(); /* Set up fonts */
- FlushEvents(everyEvent,0); /* empty the event queue */
- InitWindows(); /* Set up window manager */
- InitMenus(); /* Set up menus */
- TEInit(); /* Needed for Dialogs */
- InitDialogs(nil);/* default could be nil */
-
- /* ask for the maximum application zone. */
- MaxApplZone();
-
- /* get a plain cursor. */
- InitCursor();
-
- /* for multifinder, bring us to the front. */
- GetNextEvent(everyEvent, &event);
- GetNextEvent(everyEvent, &event);
- }